/******************************************************************************
 * @File name   :      IMaintainMemberService.java
 *
 * @Author      :      ANMA
 *
 * @Date        :      Jul 20, 2015
 *
 * @Copyright Notice: 
 * Copyright (c) 2014 DMS, Inc. All  Rights Reserved.
 * This software is published under the terms of the DMS Software
 * License version 1.0, a copy of which has been included with this
 * distribution in the LICENSE.txt file.
 * 
 * ----------------------------------------------------------------------------
 * Date                         Who         Version         Comments
 * Jul 20, 2015 6:08:03 PM    ANMA      1.0            Initial Version
 *****************************************************************************/
package com.cap.bts.crmdp.dealer.mars.service;

import java.util.List;

import com.cap.bts.crmdp.dealer.member.domain.MemberInfo;
import com.cap.bts.crmdp.dealer.member.dto.MemberQueryDto;
import com.cap.bts.crmdp.dealer.member.dto.MemberResultsDto;
import com.cap.bts.crmdp.dealer.member.dto.MemberSubmitDto;
import com.cap.bts.crmdp.webservice.dto.WSCrmCustomerDto;
import com.cap.bts.crmdp.webservice.dto.WSCrmCustomerResultDto;
import com.cap.bts.framework.common.exception.AppException;
import com.cap.bts.framework.common.service.IBaseService;

/**
 * 
 */
public interface IMarsMaintainMemberService extends IBaseService {

    /**
     * @Date : 2015-7-20
     * @param dto
     * @return List<MemberQueryDto>
     */
    public List<MemberResultsDto> getMemberAndCarPlateByDto(MemberQueryDto dto) throws AppException;

    /**
     * @Date : 2015-7-20
     * @param dto
     * @return List<MemberQueryDto>
     */
    public List<MemberResultsDto> getMemberAndCarPlateWithPackageByDto(MemberQueryDto dto)
        throws AppException;

    /**
     * @Date : 2015-7-20
     * @param dto
     * @return List<MemberQueryDto>
     */
    public MemberResultsDto getCreateMemberByDto(MemberSubmitDto dto) throws AppException;

    /**
     * @Date : 2015-7-20
     * @param dto
     * @return List<MemberQueryDto>
     */
    public List<MemberResultsDto> getMemberByMobilePhoneOrMemberId(MemberQueryDto dto)
        throws AppException;

    /**
     * @Date : 2015-7-20
     * @param dto
     */
    public void getUpdateMemberName(MemberInfo info) throws AppException;

    /**
     * @Date : 2015年8月4日
     * @param dto
     * @return
     * @throws AppException
     */
    public List<MemberResultsDto> getMemberByCarPlate(MemberQueryDto dto) throws AppException;

    /**
     * @Date : 2015年8月5日
     * @return
     */
    public boolean updateMemberNameByMemberResultsDto(MemberResultsDto memberResultsDto)
        throws AppException;

    /**
     * @Date : 2015年8月24日
     * @param dto
     * @return
     * @throws AppException
     */
    public int getActivePackageCount(Long dealerId, Long memberId, Long carId) throws AppException;

    /**
     * @Date : 2015年9月1日
     * @param memberResultsDto
     * @return
     * @throws AppException
     */
    public boolean updateMemberMobileByMemberResultsDto(MemberResultsDto memberResultsDto)
        throws AppException;

    /**
     * @Date : 2015年9月6日
     * @param id
     * @throws AppException
     */
    public void removeMemberById(Long id) throws AppException;

    /**
     * @Date : 2015年9月6日
     * @param id
     * @throws AppException
     */
    public MemberInfo getMemberById(Long id) throws AppException;

    /**
     * @Date : 2015年10月23日
     * @param dealerId
     * @return
     * @throws AppException
     */
    public MemberInfo getMemberByDealerId(Long dealerId, String marsMemberId) throws AppException;

    /**
     * 
     * @param dto
     * @return
     */
    public WSCrmCustomerResultDto processCrmCustomerAndCarInfo(WSCrmCustomerDto dto);

    /**
     * @Date : 2015年9月6日
     * @param marsmemberid
     * @throws AppException
     */
    public MemberInfo getMemberByMarsInfo(String marsDealerId, String marsMemberId)
        throws AppException;
}
